1. Technical Field:
The present invention relates in general to a method and system for modifying functions and/or features of graphic user interface elements within a data processing system and in particular to a method and system for the installation of optional functions and/or features in system-wide and application-specific graphic user interface environments. Still more particularly, the present invention relates to a method and system for modifying functions and/or features of graphic user interface environments utilizing graphic manipulation of selected graphic user interface elements to initiate the installation of optional functions and/or features.
2. Description of the Related Art:
As data processing system computer software and hardware become increasingly complex, the interface between the data processing system and a user becomes more important. Users who have difficulty remembering, understanding, and properly entering complicated computer instructions to operate relatively simple data processing system software and hardware will surely have difficulty interfacing with such data processing systems as their capabilities, and hence their complexity, increase. If the interface between a user and a data processing system is not constantly reevaluated and improved, the rate at which data processing system manufacturers produce systems with features that require a user to enter commands which are often cryptic and complex may outpace a user's ability to learn, understand, and utilize such commands.
In order to increase a data processing system user's efficiency, data processing system hardware and software manufacturers have recently provided so-called "graphical user interfaces" (GUIs). Presently, many GUIs are known to those persons skilled in the art, and each such interface provides data processing system users a more visual and intuitive means for entering data, entering commands, and viewing computational results.
While such GUIs have shortened the time required for inexperienced users to learn to operate a data processing system, and increased the efficiency of experienced data processing system users, many data processing system users desire the capability to add additional functions and/or features to such GUI environments. Such additional functions and/or features may enhance the operation of, or add new features to, a system-wide GUI environment, or a GUI environment created by a selected application program.
Norton Desktop 2.0, by Symantec Corp., of Cupertino, California, is an example of a software package that enhances the operation of Windows, a system-wide GUI, provided by Microsoft Corp., of Redmond, Wash. Norton Desktop enhances the display of system-generated directory windows by adding a user-definable "button bar," from which a user may view, edit, and otherwise manipulate selected files directly. Such a button bar is usually displayed along the bottom edge of an open directory window.
Today, system-wide customization (i.e., modification of functions and/or features) of a GUI environment in a known system may be accomplished by placing optional functions and/or features into designated directories or folders within the data processing system start-up disk. Examples of functions or features which may be added to a window in this manner include a display of a clock or timing device, or a display of the current vertical and horizontal position of a cursor. Thereafter, as the data processing system "boots" at start-up, these optional functions and/or features are loaded and incorporated into the system software, and thereafter modify the system software, to provide an optional function and/or feature. To customize a GUI environment generated by application software, a user may be required to utilize dialog boxes and/or control panels provided by the manufacturer of the application software.
Both of the above-described methods of modifying system GUI environments and application GUI environments have substantial drawbacks. In the example of modifying a system GUI environment, the optional functions and/or features which are installed at start up typically affect GUI elements system-wide, even though a user may wish to customize only particular GUI elements under certain predetermined conditions. Thus, a data processing system user desiring to bill clients for time devoted to writing a particular document, may find it useful to have a timer displayed within a word processing application, which represents the amount of time spent writing the document. That same user, however, may not wish to have a timer displayed in every application window throughout the system.
As for the example of installing optional functions and/or features in order to customize a GUI generated by a particular application program, a user is often confronted with a wide variety of control panels and/or dialog, boxes which must be manipulated in order to install a variety of custom GUI features. Since application software is often produced by different software manufacturers having different philosophies of how a GUI should "look and feel," the process of installing various optional functions and/or features to customize different application-created GUI environments may be unnecessarily complicated. Users may also desire to have a custom feature offered by one software manufacturer installed while running an application provided by another software manufacturer.
FIG. 1 illustrates one example of a known control panel 2 which may be utilized to customize an application-generated GUI. Control panel 2 utilizes two list boxes: list box 4 and list box 6. List box 4 indicates the optional functions and/or features which are available for customizing the GUI, and list box 6 indicates the optional functions and/or features already installed in the application-generated GUI. A group of pushbuttons 8 are utilized to load (i.e., install) or move (i.e., remove) optional functions and/or features. Such installation control panels may be more suited for the installation of fonts and small utility programs called "desk accessories," rather than for the installation of optional functions, which may require a user to select a location for a display associated with that particular optional function and/or feature.
Since GUI environment customization may vary from one application to another, users who have mastered the customization techniques of one application may be required to learn new techniques for customizing another application. That is, there may be little or no transfer of learning from the customization process of one application to another. Furthermore, techniques for customizing different GUI elements within the same application may also vary. Therefore, a user may be required to learn three or more different techniques for varying GUI environments; one to customize the system-wide GUI, a second to customize a first characteristic of an application-generated GUI environment, and yet a third to customize other characteristics of the same application-generated GUI environment.
Therefore it should be apparent that a need exist for a method and system for the installation of optional functions and/or features for customizing system-wide and application-specific GUI environments.